package com.ct.application.sysrmenus.service;


import com.ct.application.commons.vo.StatusRequest;
import com.ct.application.sysrmenus.model.vo.SysMenusVO;
import com.ct.application.sysrmenus.request.SysMenusBatchRequest;
import com.ct.application.sysrmenus.request.SysMenusSaveRequest;
import com.ct.application.sysrmenus.request.SysMenusSearchRequest;
import com.ct.application.sysrmenus.request.SysMenusUpdateRequest;
import com.ct.repository.commons.ITransfterBaseService;

import java.util.List;

/**
 * <p>
 * 菜单表 服务类
 * </p>
 *
 * @author Auto Generator
 * @since 2023-08-13
 */
public interface ISysMenusService extends ITransfterBaseService {

    /**
     * 分页查询菜单列表--租户使用
     * @param roleId
     * @return
     */
    List<SysMenusVO> findSystemPageMenu(Long roleId);

    /**
     * 分页查询菜单列表
     * @param sysMenusSearchRequest
     * @return
     */
    List<SysMenusVO> findPageMenu(SysMenusSearchRequest sysMenusSearchRequest);

    /**
     * 根据ID查询菜单信息
     * @param id
     * @return
     */
    SysMenusVO selectById(Long id);

    /**
     * 根据ID删除菜单信息
     * @param id
     * @return
     */
    Boolean deleteById(Long id);

    /**
     * 保存菜单
     * @param sysMenusSaveRequest
     * @return
     */
    SysMenusVO saveSysMenus(SysMenusSaveRequest sysMenusSaveRequest);

    /**
     * 修改菜单信息
     * @param sysMenusUpdateRequest
     * @return
     */
    SysMenusVO updateSysMenus(SysMenusUpdateRequest sysMenusUpdateRequest);

    /**
     * 修改状态
     * @param statusRequest
     * @return
     */
    Boolean updateStatusSysMenus(StatusRequest statusRequest);

    /**
     * 批量恢复
     * @param sysMenusBatchRequest
     * @return
     */
    Boolean batchStatus(SysMenusBatchRequest sysMenusBatchRequest);

    /**
     * 批量禁止
     * @param sysMenusBatchRequest
     * @return
     */
    Boolean batchForbiddens(SysMenusBatchRequest sysMenusBatchRequest);

}
